home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / metasploit / sdk / docs / vuln1_1.pm < prev    next >
Text File  |  2006-06-30  |  3KB  |  106 lines

  1.  
  2. ##
  3. # This file is part of the Metasploit Framework and may be redistributed
  4. # according to the licenses defined in the Authors field below. In the
  5. # case of an unknown or missing license, this file defaults to the same
  6. # license as the core Framework (dual GPLv2 and Artistic). The latest
  7. # version of the Framework can always be obtained from metasploit.com.
  8. ##
  9.  
  10. package Msf::Exploit::vuln1_1;
  11. use strict;
  12. use base 'Msf::Exploit';
  13. use Msf::Socket::Tcp;
  14. use Pex::Text;
  15.  
  16. my $advanced = {
  17. };
  18.  
  19. my $info = {
  20.   'Name'    => 'Vuln1 v1 Exploit',
  21.   'Version'  => '$Revision: 1.1 $',
  22.  
  23.   # List of authors, your's truely
  24.   'Authors' => [ 'spoonm', ],
  25.  
  26.   # The following options are used to match payloads with the exploit.
  27.   # Architectures supported
  28.   'Arch'    => [ 'x86' ],
  29.  
  30.   # Operating Systems supported
  31.   'OS'      => [ 'linux' ],
  32.  
  33.   # This advertises whether the exploit gains a priviledges account
  34.   # after successful exploitation.  1 means that it does (ie SYSTEM or root)
  35.   # This is used incase a payload needs priviledged access to successfully
  36.   # operate (ie adduser)
  37.   'Priv'    => 1,
  38.  
  39.   # Tell the framework to ask the users for these options, in the format of
  40.   # BOOL (required/optional), Type, and Description
  41.   'UserOpts'  =>
  42.     {
  43.       # RHOST and RPORT are our standard names for remote host and port
  44.       # The framework will resolve any hostnames passed in for you, so you
  45.       # will get an ip address always from RHOST (because it is type ADDR)
  46.       'RHOST' => [1, 'ADDR', 'The target address'],
  47.  
  48.       # Default to port to 11221, the port vuln1.c listens on
  49.       'RPORT' => [1, 'PORT', 'The target port', 11221],
  50.     },
  51.  
  52.   # Freeform is our freeform style text parser, allowing you to have arbitrary
  53.   # line breaks, making for text that looks good both in source and in output
  54.   'Description'  => Pex::Text::Freeform(qq{
  55.     I am a banana
  56.  
  57.     Awww yeah
  58.     }),
  59.   'Refs'  =>
  60.     [
  61.       'http://www.metasploit.com',
  62.     ],
  63. };
  64.  
  65. # This is our standard (and necessary) new method, informing the Framework
  66. # of information like the Info hash and Advanced Options
  67. sub new {
  68.   my $class = shift;
  69.   my $self = $class->SUPER::new({'Info' => $info, 'Advanced' => $advanced}, @_);
  70.  
  71.   return($self);
  72. }
  73.  
  74. # We could add a check w/ a Check method much like Exploit, but we are lazy
  75. # for now
  76.  
  77.  
  78. # The Exploit method gets called by the framework when a user runs the exploit
  79. sub Exploit {
  80.   my $self = shift;
  81.  
  82.   # Pull the user supplied RHOST/RPORT values.  RHOST will be resolved
  83.   # into an IP address
  84.   my $targetHost  = $self->GetVar('RHOST');
  85.   my $targetPort  = $self->GetVar('RPORT');
  86.  
  87.   # Create the TCP socket
  88.   my $sock = Msf::Socket::Tcp->new(
  89.     'PeerAddr' => $targetHost,
  90.     'PeerPort' => $targetPort,
  91.   );
  92.   if($sock->IsError) {
  93.     $self->PrintLine('Error creating socket: ' . $sock->GetError);
  94.     return;
  95.   }
  96.  
  97.   # PatternCreate sends a stream of different characters which we can use
  98.   # to calculate distance to something like EIP
  99.   $sock->Send(Pex::Text::PatternCreate(200));
  100.  
  101.   return;
  102. }
  103.  
  104. # Always end your perl modules with a 1
  105. 1;
  106.